package Top200;

/**
 * @author zhangmin
 * @create 2022-02-25 10:19
 * 双指针
 */
public class sortColors75 {
    public void sortColors(int[] nums) {
        int n=nums.length;
        int p0=0,p1=0;
        for (int i = 0; i < n; i++) {
            if (nums[i]==1){
                int temp=nums[i];
                nums[i]=nums[p1];
                nums[p1]=temp;
                p1++;
            }else if (nums[i]==0){
                //交换p0指针的位置
                int temp=nums[i];
                nums[i]=nums[p0];
                nums[p0]=temp;
                if (p0<p1){
                    //此时已经将连续1的开始位置换到达了i的位置，需要再把他换到p1的位置
                    temp=nums[i];
                    nums[i]=nums[p1];
                    nums[p1]=temp;
                }
                p0++;
                p1++;
            }
        }
    }
}
